/*===========================================================*/
/*					Function Declarations			     	 */
/*===========================================================*/

//main functions
void print_usage();
int parse();
int simulate();

//parsing utilities
int get_define(char * str);
int get_macro(char * str);
int get_token(char * str, int start, int * i, int * j);

int recognize_rmacro(char * s, int n);
int recognize_func( char * str, int n);
int recognize_opcode(char * str, int n);
int recognize_parameter(char * str, int n, func_callp fcp);
keyword recognize_keyword( char * str, int n);

//list functions
int jump( char * str );
void print_list();
int add_func_call( instrp predp, instrp newlist, const func_callp gfcp);
void remove_next(instrp predp);
void enqueue(char * code);
instrp reverse_list( instrp hp, instrp newlist);

